Soil Transmitted Helminths are intestinal worms that are transmitted through feces. The feces of an infected person may contain the eggs of the worms. When an infected person defecates in an open area, or if the feces is used as manure, it may contaminate food or other items that humans may touch or consume. A person gets infected if they ingest the eggs. There are three types of helminths – Roundworms, Whipworms and Hookworms (CDC, 2022).
The focus of this study is on STH infections in Kenya. Worm in Kenya are a significant public health burden and may reduce long-term income of individuals by upto 32% (Baird et al., 2015). From the literature on helminths transmission, I identify two exposure covariates – Temperature and Nightlights. STH prevalence is likely to be higher in regions with higher temperature (Pullan et al., 2011). Poverty levels are also a risk factor (Scholte et al., 2013) as high poverty levels may correlate with unhygienic sanitation which in turn may be the underlying risk factor. Nightlights data may serve as a remote-sensed proxy for poverty levels in a region (Jean et al., 2016).
In this study, I analyze the prevalence of Roundworms (Ascaris lumbricoides) in Kenya. I intend to identify any spatial relationship in the prevalence, as well as estimate the correlation between the covariates and prevalence rates. I use temperature data from World Climate website, and nightlights data (DMSP) provided by the NOAA.
In this study, I analyze the prevalence of Roundworms (Ascaris lumbricoides) in Kenya. The sample size is 67 observations. The data includes a count of stools examined and a count of stools that tested positive for Roundworms.
I use two covariates in the analysis – (1) Temperature and (2)
Nightlights (as a proxy for poverty). I use the temperature data
provided by World Climate (bio1 variable) and I use the Nightlights data
provided by NOAA. Both datasets are in raster form and I
extract the covariate values in the locations for which
Roundworms data is available.
I first conduct a clustering activity, at both the Global as well as the Local level. I use the Global Moran’s I statistic to quantify the extent of Global clustering. I also calculate the statistic at various spatial lags and assess them for statistical significance.
For local clustering, I use the Local Moran’s I statistic. I identify the points at which the statistic value is higher than two standard deviations and I plot those points on the map. I then conduct a regression analysis to identify the impact of the covariates (temperature and nightlights) on the outcome variable.
I first conduct a non-spatial regression analysis. I analyze the residuals for spatial autocorrelation using Moran’s I Statistic.
I then conduct a spatial regression analysis. I use the Matern’s function for the spatially correlated random effect. I analyze the autocorrelation in errors in the spatial model using Moran’s I Statistic.
library(dplyr)
library(raster)
library(ape)
library(wesanderson)
library(lubridate)
library(reshape2)
library(raster)
library(leaflet)
library(pgirmess)
library(geoR)
library(spdep)
library(spaMM)
library(ggplot2)
ken_sth <- read.csv("Kenya_STH.csv")
ken_sth$asc_prev <- ken_sth$asc_np/ken_sth$stoolsexaminedgeo
ken_sth_SPDF <- SpatialPointsDataFrame(coords = ken_sth[,c("long", "lat")],
data = ken_sth[,c("stoolsexaminedgeo", "asc_np","asc_prev")],
proj4string = CRS("+init=epsg:4326"))
ken_adm <- getData(name = "GADM",country="KEN",level=1)
climate <- getData('worldclim', var='bio', res=2.5)
# Downloaded from https://ngdc.noaa.gov/eog/dmsp/downloadV4composites.html
nl <- raster("F182010.v4d_web.avg_vis.tif")
ken_sth_SPDF$temp <- extract(climate$bio1, ken_sth_SPDF)
ken_sth_SPDF$nl <- extract(nl, ken_sth_SPDF)
ken_sth$temp <- extract(climate$bio1, ken_sth_SPDF)
ken_sth$nl <- extract(nl, ken_sth_SPDF)
The map below plots Roundworms Prevalence. We see that Busia region has a higher prevalence compared to Siaya region.
colorPal <- colorNumeric(wes_palette("Zissou1")[1:5], ken_sth_SPDF$asc_prev, n = 5)
leaflet() %>%
addProviderTiles("CartoDB.Positron") %>%
addPolygons(data=ken_adm, weight = 2, fillOpacity=0,
popup = ken_adm$NAME_1,
color = "gray") %>%
addCircleMarkers(data=ken_sth_SPDF,
color = colorPal(ken_sth_SPDF$asc_prev),
radius = 2,
popup = as.character(ken_sth_SPDF$asc_prev)) %>%
addLegend(pal = colorPal,
title = "Roundworm Prevalence",
values = ken_sth_SPDF$asc_prev)
The map below plots Mean Annual Temparature. Temperature at the coastlines seem to be higher than at the inlands.
colorPal <- colorNumeric(wes_palette("Zissou1")[1:5], ken_sth_SPDF$temp, n = 5)
leaflet() %>%
addProviderTiles("CartoDB.Positron") %>%
addPolygons(data=ken_adm, weight = 2, fillOpacity=0,
popup = ken_adm$NAME_1,
color = "gray") %>%
addCircleMarkers(data=ken_sth_SPDF,
color = colorPal(ken_sth_SPDF$temp),
radius = 2,
popup = as.character(ken_sth_SPDF$temp)) %>%
addLegend(pal = colorPal,
title = "Nightlights",
values = ken_sth_SPDF$temp)